package extend.db.transaction;

import extend.db.DbConnection;

/**
 * 事务类
 * <B>说明：</B>
 * <pre>
 *  一次事务提交,必须实例化对应的事务类
 * </pre>
 * <B>示例：</B>
 * <pre>
 *  略
 * </pre>
 * <B>日志：</B>
 * <pre>
 *  略
 * </pre>
 * <B>注意事项：</B>
 * <pre>
 *  略
 * </pre>
 */
public interface Transaction
{
    /**
     * 开启事务
     *<B>说明：</B>
     *<pre>
     *  略
     *</pre>
     */
    abstract public boolean beginTransaction();

    /**
     * 提交事务
     *<B>说明：</B>
     *<pre>
     *  提交事务之前,尝试先提交上次的事务
     *</pre>
     */
    abstract public boolean commit();

    /**
     * 回滚事务
     *<B>说明：</B>
     *<pre>
     *  略
     *</pre>
     */
    abstract public boolean rollback();

    /**
     * 清空事务资源　
     *<B>说明：</B>
     *<pre>
     *  在开启事务之前,清空
     *</pre>
     */
    abstract public boolean clearTrans();

    /**
     * 添加db连接至事务池
     *<B>说明：</B>
     *<pre>
     *  略
     *</pre>
     */
    abstract public void addTransDb(String dbConnKey,DbConnection dbConnection);

}
